Salesforce SOQL snap comparing fields value by upper case

I’m trying to use the Salesforce SOQL to dynamically query from Contact object based on last name. Because the input last name is manually entered and I would like to make the comparison NOT case sensitive. It seemed upper, uppercase or touppcare() didn’t work. Does anyone have worked on this or have a suggestion? Thank you for looking at it.

Below is my query:
“select Id, Name, FirstName, LastName, Email
from Contact
where Uppercase(LastName) = '” + $Donor_Last.toUpperCase() + "’ "