/*
 * Copyright (C) 2014 STMicroelectronics Limited.
 * Author: Peter Griffin <peter.griffin@linaro.org>
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * publishhed by the Free Software Foundation.
 */
#include "st-pincfg.h"
/ {

	soc {
		pin-controller-rear {

			usb0 {
				pinctrl_usb0: usb2-0 {
					st,pins {
						usb-oc-detect = <&pio35 0 ALT1 IN>;
						usb-pwr-enable = <&pio35 1 ALT1 OUT>;
					};
				};
			};

			usb1 {
				pinctrl_usb1: usb2-1 {
					st,pins {
						usb-oc-detect = <&pio35 2 ALT1 IN>;
						usb-pwr-enable = <&pio35 3 ALT1 OUT>;
					};
				};
			};
		};
	};
};
