lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1jy2lbt2bk.fsf@starbuckisacylon.baylibre.com>
Date:   Tue, 15 Sep 2020 18:46:55 +0200
From:   Jerome Brunet <jbrunet@...libre.com>
To:     Neil Armstrong <narmstrong@...libre.com>,
        Kevin Hilman <khilman@...libre.com>
Cc:     linux-amlogic@...ts.infradead.org, devicetree@...r.kernel.org,
        linux-kernel@...r.kernel.org
Subject: Re: [PATCH 2/2] arm64: dts: meson: initial support for aml-s905x-cc v2


On Tue 15 Sep 2020 at 16:30, Neil Armstrong <narmstrong@...libre.com> wrote:

> Hi,
>
> On 15/09/2020 16:19, Jerome Brunet wrote:
>> Add initial support for the libretech aml-s905x-cc (Le Potato) v2
>> 
>> Signed-off-by: Jerome Brunet <jbrunet@...libre.com>
>> ---
>>  arch/arm64/boot/dts/amlogic/Makefile          |   1 +
>>  .../meson-gxl-s905x-libretech-cc-v2.dts       | 318 ++++++++++++++++++
>>  2 files changed, 319 insertions(+)
>>  create mode 100644 arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc-v2.dts
>> 
>> diff --git a/arch/arm64/boot/dts/amlogic/Makefile b/arch/arm64/boot/dts/amlogic/Makefile
>> index 4e2239ffcaa5..be5277b7fbf4 100644
>> --- a/arch/arm64/boot/dts/amlogic/Makefile
>> +++ b/arch/arm64/boot/dts/amlogic/Makefile
>> @@ -24,6 +24,7 @@ dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s805x-libretech-ac.dtb
>>  dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-hwacom-amazetv.dtb
>>  dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-khadas-vim.dtb
>>  dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-libretech-cc.dtb
>> +dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-libretech-cc-v2.dtb
>>  dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-nexbox-a95x.dtb
>>  dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-p212.dtb
>>  dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-p230.dtb
>> diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc-v2.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc-v2.dts
>> new file mode 100644
>> index 000000000000..675eaa87963e
>> --- /dev/null
>> +++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc-v2.dts
>> @@ -0,0 +1,318 @@
>> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
>> +/*
>> + * Copyright (c) 2020 BayLibre, SAS.
>> + * Author: Jerome Brunet <jbrunet@...libre.com>
>> + */
>> +
>> +/dts-v1/;
>> +
>> +#include <dt-bindings/input/input.h>
>> +#include <dt-bindings/leds/common.h>
>> +#include <dt-bindings/sound/meson-aiu.h>
>> +
>> +#include "meson-gxl-s905x.dtsi"
>> +
>> +/ {
>> +	compatible = "libretech,aml-s905x-cc-v2", "amlogic,s905x",
>> +		     "amlogic,meson-gxl";
>> +	model = "Libre Computer AML-S905X-CC V2";
>> +
>> +	aliases {
>> +		serial0 = &uart_AO;
>> +		ethernet0 = &ethmac;
>> +		spi0 = &spifc;
>> +	};
>> +
>> +	chosen {
>> +		stdout-path = "serial0:115200n8";
>> +	};
>> +
>> +	emmc_pwrseq: emmc-pwrseq {
>> +		compatible = "mmc-pwrseq-emmc";
>> +		reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>;
>> +	};
>> +
>> +	hdmi-connector {
>> +		compatible = "hdmi-connector";
>> +		type = "a";
>> +
>> +		port {
>> +			hdmi_connector_in: endpoint {
>> +				remote-endpoint = <&hdmi_tx_tmds_out>;
>> +			};
>> +		};
>> +	};
>> +
>> +	leds {
>> +		compatible = "gpio-leds";
>> +
>> +		led-blue {
>> +			color = <LED_COLOR_ID_BLUE>;
>> +			function = LED_FUNCTION_STATUS;
>> +			gpios = <&gpio GPIODV_24 GPIO_ACTIVE_HIGH>;
>> +			linux,default-trigger = "heartbeat";
>> +			panic-indicator;
>> +		};
>> +
>> +		led-green {
>> +			color = <LED_COLOR_ID_GREEN>;
>> +			function = LED_FUNCTION_DISK_ACTIVITY;
>> +			gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_HIGH>;
>> +			linux,default-trigger = "disk-activity";
>> +		};
>> +	};
>> +
>> +	memory@0 {
>> +		device_type = "memory";
>> +		reg = <0x0 0x0 0x0 0x80000000>;
>> +	};
>> +
>> +	ao_5v: regulator-ao_5v {
>> +		compatible = "regulator-fixed";
>> +		regulator-name = "AO_5V";
>> +		regulator-min-microvolt = <5000000>;
>> +		regulator-max-microvolt = <5000000>;
>> +		vin-supply = <&dc_in>;
>> +		regulator-always-on;
>> +	};
>> +
>> +	dc_in: regulator-dc_in {
>> +		compatible = "regulator-fixed";
>> +		regulator-name = "DC_IN";
>> +		regulator-min-microvolt = <5000000>;
>> +		regulator-max-microvolt = <5000000>;
>> +		regulator-always-on;
>> +	};
>> +
>> +
>> +	vcck: regulator-vcck {
>> +		compatible = "regulator-fixed";
>> +		regulator-name = "VCCK";
>> +		regulator-min-microvolt = <3300000>;
>> +		regulator-max-microvolt = <3300000>;
>> +		vin-supply = <&ao_5v>;
>> +		regulator-always-on;
>> +	};
>> +
>> +	vcc_card: regulator-vcc_card {
>> +		compatible = "regulator-fixed";
>> +		regulator-name = "VCC_CARD";
>> +		regulator-min-microvolt = <3300000>;
>> +		regulator-max-microvolt = <3300000>;
>> +		vin-supply = <&vddio_ao3v3>;
>> +
>> +		gpio = <&gpio GPIOCLK_1 GPIO_ACTIVE_HIGH>;
>> +		enable-active-high;
>> +	};
>> +
>> +	vcc5v: regulator-vcc5v {
>> +		compatible = "regulator-fixed";
>> +		regulator-name = "VCC5V";
>> +		regulator-min-microvolt = <5000000>;
>> +		regulator-max-microvolt = <5000000>;
>> +		vin-supply = <&ao_5v>;
>> +
>> +		gpio = <&gpio GPIOH_3 GPIO_OPEN_DRAIN>;
>> +	};
>> +
>> +	vddio_ao3v3: regulator-vddio_ao3v3 {
>> +		compatible = "regulator-fixed";
>> +		regulator-name = "VDDIO_AO3V3";
>> +		regulator-min-microvolt = <3300000>;
>> +		regulator-max-microvolt = <3300000>;
>> +		vin-supply = <&ao_5v>;
>> +		regulator-always-on;
>> +	};
>> +
>> +
>> +	vddio_card: regulator-vddio-card {
>> +		compatible = "regulator-gpio";
>> +		regulator-name = "VDDIO_CARD";
>> +		regulator-min-microvolt = <1800000>;
>> +		regulator-max-microvolt = <3300000>;
>> +
>> +		gpios = <&gpio_ao GPIOAO_3 GPIO_ACTIVE_HIGH>;
>> +		gpios-states = <0>;
>> +
>> +		states = <3300000 0>,
>> +			 <1800000 1>;
>> +
>> +		regulator-settling-time-up-us = <200>;
>> +		regulator-settling-time-down-us = <50000>;
>> +	};
>> +
>> +	vddio_ao18: regulator-vddio_ao18 {
>> +		compatible = "regulator-fixed";
>> +		regulator-name = "VDDIO_AO18";
>> +		regulator-min-microvolt = <1800000>;
>> +		regulator-max-microvolt = <1800000>;
>> +		vin-supply = <&vddio_ao3v3>;
>> +		regulator-always-on;
>> +	};
>> +
>> +	vcc_1v8: regulator-vcc_1v8 {
>> +		compatible = "regulator-fixed";
>> +		regulator-name = "VCC 1V8";
>> +		regulator-min-microvolt = <1800000>;
>> +		regulator-max-microvolt = <1800000>;
>> +		vin-supply = <&vddio_ao3v3>;
>> +		regulator-always-on;
>> +	};
>> +
>> +	sound {
>> +		compatible = "amlogic,gx-sound-card";
>> +		model = "GXL-LIBRETECH-S905X-CC-V2";
>> +		assigned-clocks = <&clkc CLKID_MPLL0>,
>> +				  <&clkc CLKID_MPLL1>,
>> +				  <&clkc CLKID_MPLL2>;
>> +		assigned-clock-parents = <0>, <0>, <0>;
>> +		assigned-clock-rates = <294912000>,
>> +				       <270950400>,
>> +				       <393216000>;
>> +		status = "okay";
>> +
>> +		dai-link-0 {
>> +			sound-dai = <&aiu AIU_CPU CPU_I2S_FIFO>;
>> +		};
>> +
>> +		dai-link-1 {
>> +			sound-dai = <&aiu AIU_CPU CPU_I2S_ENCODER>;
>> +			dai-format = "i2s";
>> +			mclk-fs = <256>;
>> +
>> +			codec-0 {
>> +				sound-dai = <&aiu AIU_HDMI CTRL_I2S>;
>> +			};
>> +		};
>> +
>> +		dai-link-2 {
>> +			sound-dai = <&aiu AIU_HDMI CTRL_OUT>;
>> +
>> +			codec-0 {
>> +				sound-dai = <&hdmi_tx>;
>> +			};
>> +		};
>> +	};
>> +};
>> +
>> +
>> +&aiu {
>> +	status = "okay";
>> +};
>> +
>> +&cec_AO {
>> +	status = "okay";
>> +	pinctrl-0 = <&ao_cec_pins>;
>> +	pinctrl-names = "default";
>> +	hdmi-phandle = <&hdmi_tx>;
>> +};
>> +
>> +
>> +&ethmac {
>> +	status = "okay";
>> +};
>> +
>> +&internal_phy {
>> +	pinctrl-0 = <&eth_link_led_pins>, <&eth_act_led_pins>;
>> +	pinctrl-names = "default";
>> +};
>> +
>> +&ir {
>> +	status = "okay";
>> +	pinctrl-0 = <&remote_input_ao_pins>;
>> +	pinctrl-names = "default";
>> +};
>> +
>> +&hdmi_tx {
>> +	status = "okay";
>> +	pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
>> +	hdmi-supply = <&vcc5v>;
>> +	pinctrl-names = "default";
>> +};
>> +
>> +&hdmi_tx_tmds_port {
>> +	hdmi_tx_tmds_out: endpoint {
>> +		remote-endpoint = <&hdmi_connector_in>;
>> +	};
>> +};
>> +
>> +&saradc {
>> +	status = "okay";
>> +	vref-supply = <&vddio_ao18>;
>> +};
>> +
>> +/* SD card */
>> +&sd_emmc_b {
>> +	pinctrl-0 = <&sdcard_pins>;
>> +	pinctrl-1 = <&sdcard_clk_gate_pins>;
>> +	pinctrl-names = "default", "clk-gate";
>> +
>> +	bus-width = <4>;
>> +	cap-sd-highspeed;
>> +	sd-uhs-sdr12;
>> +	sd-uhs-sdr25;
>> +	sd-uhs-sdr50;
>> +	sd-uhs-ddr50;
>> +	max-frequency = <100000000>;
>> +	disable-wp;
>> +
>> +	cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>;
>> +
>> +	vmmc-supply = <&vcc_card>;
>> +	vqmmc-supply = <&vddio_card>;
>> +
>> +	status = "okay";
>> +};
>> +
>> +/* eMMC */
>> +&sd_emmc_c {
>> +	pinctrl-0 = <&emmc_pins>;
>> +	pinctrl-1 = <&emmc_clk_gate_pins>;
>> +	pinctrl-names = "default", "clk-gate";
>> +
>> +	bus-width = <8>;
>> +	cap-mmc-highspeed;
>> +	mmc-hs200-1_8v;
>> +	max-frequency = <200000000>;
>> +	disable-wp;
>> +
>> +	mmc-pwrseq = <&emmc_pwrseq>;
>> +	vmmc-supply = <&vddio_ao3v3>;
>> +	vqmmc-supply = <&vcc_1v8>;
>> +
>> +	status = "okay";
>> +};
>> +
>> +&spifc {
>> +	status = "okay";
>> +	pinctrl-0 = <&nor_pins>;
>> +	pinctrl-names = "default";
>> +
>> +	nor_4u1: spi-flash@0 {
>> +		#address-cells = <1>;
>> +		#size-cells = <1>;
>> +		compatible = "jedec,spi-nor";
>> +		reg = <0>;
>> +		spi-max-frequency = <3000000>;
>> +	};
>> +};
>> +
>> +&uart_AO {
>> +	status = "okay";
>> +	pinctrl-0 = <&uart_ao_a_pins>;
>> +	pinctrl-names = "default";
>> +};
>> +
>> +&usb {
>> +	status = "okay";
>> +	dr_mode = "host";
>> +};
>> +
>> +&usb2_phy0 {
>> +	pinctrl-names = "default";
>> +	phy-supply = <&vcc5v>;
>> +};
>> +
>> +&usb2_phy1 {
>> +	phy-supply = <&vcc5v>;
>> +};
>> 
>
> I'm pretty sure most of this can be shared with the v1 via a common dtsi,
> with only the differences this v2 dts (spifc, and ?).

... Sound card, CVBS, several headers ...
The PCB is actually closer to "la frite" than the v1.

I'm considering a common dtsi, possibly including the v1 and la frite.
I'm not yet entirely convinced it is such a good idea, especially
considering all the headers which don't show up (yet) in DT and are
vastly different between v1 and v2. In any case, doing so will require
some clean up in the existing DTs.

This does not need to be done for the start and can considered later on.

> Neil

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ