/*
 * 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@922f080 {

			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>;
					};
				};
			};
		};
	};
};
