Are we supposed to add separate pin names for 3 targets in the same PinNames.h file? It looks to me like this should've been 3 separate targets. The problem becomes clear in the modified tests (below), where you can find code like this:

+#elif defined(TARGET_LPC1114)
+#define PIN_OUT     dp1
+#define PIN_IN      dp2
+ 

This reffers the 'dp1' and 'dp2' pins, which might be confusing if the user has a LPC1114 mbed with all the regular 'px' names. Even worse, 'dp1' and 'dp2' might have special functions on some of the boards, thus making them unavailable. Not sure how to fix this, but I believe the main problem is that we're building for MCUs when we should build for platforms. Not a big deal though, we can have targets named like this:

TARGET_LPC1114_MBED
TARGET_LPC1114_XPRESSO
TARGET_LPC1114_DIP
(each of these would also #define TARGET_LPC1114 to keep code changes to a minimum)

With the proper setting of labels, our build system should be fully able to support this.