/ {
	/* Short TL_Key1 (J20 pin 15) to ground (J50 pin 15-23) */
	key_pool {
		compatible = "gpio-keys";

		inp {
			gpios = <&gpioc 3 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>,
					<&gpioc 1 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
		};
	};

	key_matrix {
		compatible = "gpio-keys";

		col {
			gpios = <&gpioc 2 GPIO_ACTIVE_HIGH>,
					<&gpioc 0 GPIO_ACTIVE_HIGH>;
		};

		row {
			gpios = <&gpioc 3 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>,
					<&gpioc 1 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>;
		};
	};

	led_pool{
		compatible = "gpio-leds";

		out {
			gpios = <&gpiob 6 GPIO_ACTIVE_HIGH>;
		};
	};

	pwm_pool {
		compatible = "pwm-leds";
		out {
			/* Use blue led as indication, red & green - RGB-fixture */
			pwms = <&pwm0 0 PWM_MSEC(20) PWM_POLARITY_NORMAL>,
					<&pwm0 2 PWM_MSEC(20) PWM_POLARITY_NORMAL>,
					<&pwm0 1 PWM_MSEC(20) PWM_POLARITY_NORMAL>;
		};
	};
};

&pwm0 {
	/* On board RGB LEDs */
	pinctrl-ch2 = <&pwm_ch2_pb7_default>;
	pinctrl-ch1 = <&pwm_ch1_pb5_default>;
	pinctrl-ch0 = <&pwm_ch0_pb4_default>;
};

&pinctrl {
	pwm_ch2_pb7_default: pwm_ch2_pb7_default {
		pinmux = <B9x_PINMUX_SET(B9x_PORT_B, B9x_PIN_7, B91_FUNC_A)>;
	};
	pwm_ch1_pb5_default: pwm_ch1_pb5_default {
		pinmux = <B9x_PINMUX_SET(B9x_PORT_B, B9x_PIN_5, B91_FUNC_C)>;
	};
	pwm_ch0_pb4_default: pwm_ch0_pb4_default {
		pinmux = <B9x_PINMUX_SET(B9x_PORT_B, B9x_PIN_4, B91_FUNC_B)>;
	};
};

