I have a similar component but I am just displaying an icon in an ui:inputText field. I use:
<div class="slds-form-element" >
<div class="slds-combobox__form-element slds-input-has-icon slds-input-has-icon_left" aura:id="iconPosition">
placeholder="Start entering the mailing address"/>
<span class="slds-icon_container slds-input__icon">
<div class="slds-icon slds-icon slds-icon_x-small slds-icon-text-default icon" >
<lightning:icon iconName="utility:checkin" size="x-small"/>
Currently there seems to be a bug with icon position and the placeholder/text position where they overlap eachother. This was working for me 2 days ago, I have not changed the code and now it is showing an overlap. I'm pretty sure it's just a SF bug they will resolve at some point. Also, you need to declare your icon, go to https://www.lightningdesignsystem.com/icons/ to find the icon you want to use, then place the type with the name in iconName="".