+# A start sequence to change from cJTAG to 4-pin JTAG
+# This is needed for CC2538 and CC26xx to be able to communicate through JTAG
+# Read section 6.3 in http://www.ti.com/lit/pdf/swru319 for more information.
+proc ti_cjtag_to_4pin_jtag {jrc} {
+ # Bypass
+ irscan $jrc 0x3f -endstate RUN/IDLE
+ # Two zero bit scans and a one bit drshift
+ pathmove RUN/IDLE DRSELECT DRCAPTURE DREXIT1 DRPAUSE
+ pathmove DRPAUSE DREXIT2 DRUPDATE RUN/IDLE
+ pathmove RUN/IDLE DRSELECT DRCAPTURE DREXIT1 DRPAUSE
+ pathmove DRPAUSE DREXIT2 DRUPDATE RUN/IDLE
+ pathmove RUN/IDLE DRSELECT DRCAPTURE DREXIT1 DRPAUSE
+ pathmove DRPAUSE DREXIT2 DRSHIFT DREXIT1 DRUPDATE RUN/IDLE
+ pathmove RUN/IDLE DRSELECT DRCAPTURE DREXIT1 DRPAUSE
+
+ # A two bit drhift and a 9 bit drshift
+ pathmove DRPAUSE DREXIT2 DRSHIFT DRSHIFT DREXIT1 DRUPDATE RUN/IDLE
+ pathmove RUN/IDLE DRSELECT DRCAPTURE DREXIT1 DRPAUSE
+ pathmove DRPAUSE DREXIT2 DRSHIFT DRSHIFT DREXIT1 DRPAUSE
+ pathmove DRPAUSE DREXIT2 DRSHIFT DRSHIFT DREXIT1 DRPAUSE
+ pathmove DRPAUSE DREXIT2 DRSHIFT DRSHIFT DREXIT1 DRPAUSE
+ pathmove DRPAUSE DREXIT2 DRSHIFT DRSHIFT DREXIT1 DRPAUSE
+ pathmove DRPAUSE DREXIT2 DRSHIFT DREXIT1 DRPAUSE
+ pathmove DRPAUSE DREXIT2 DRUPDATE RUN/IDLE
+ pathmove RUN/IDLE DRSELECT DRCAPTURE DREXIT1 DRPAUSE
+
+ # Bypass
+ irscan $jrc 0x3f -endstate RUN/IDLE
+
+ # Set ICEPick IDCODE in data register
+ irscan $jrc 0x04 -endstate RUN/IDLE
+}