What's wrong with this rotation script?

I want it to rotate 90 degrees clockwise smoothly every time I click

using UnityEngine;
using System.Collections;

public class PlayerControl : MonoBehaviour
{

    public float turnSpeed = 20;

    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            transform.rotation = Quaternion.Slerp(transform.rotation, Quaternion.Euler(0, 0, -90), Time.deltaTime * turnSpeed);

        }
    }

The way any Lerp function works is on a scale of 0 - 1. At 0 you will be at the starting value and at 1 you will be at the final value. You are continually getting the same time on that line because you are not accruing your t value.

Make a new float variable, start it at 0, and increase it by (Time.deltaTime * turnspeed) every frame and replace that in your slerp function with the final parameter.