Received: by 2002:ac0:a594:0:0:0:0:0 with SMTP id m20-v6csp2003863imm; Thu, 24 May 2018 04:21:30 -0700 (PDT) X-Google-Smtp-Source: AB8JxZpmkJP1vpb13ygYuyVlmUCV3kllBpP4sJ9J0mYHQoZEacpK8LyNE7W/SjBzxy36WkhAHyrw X-Received: by 2002:a17:902:5327:: with SMTP id b36-v6mr7087475pli.316.1527160890461; Thu, 24 May 2018 04:21:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1527160890; cv=none; d=google.com; s=arc-20160816; b=GEf2Kor/2ApFbSxoTizlLur+Umin38KzmNv77oUzLvOfHyGxFUbjQH7OgTmLYTM3gR ERp4CY7/uv8Kpe56eCUyq6svxHo1toBLcWF+WXkc3jAY4tJXFF1xgy2YyObN6SM15YuQ 896coUY3PoxSwbHxUcCo8xO8jAppXha2uCrPD9I2bL08EA3ar7vA7eiQTYlUXYVFqhT5 gpPjVNh0hFM0bl+LUbz17q/J+h9t6klaDa0utr690Ux+3LJ+cwCPWEIac7Gq0Jgf3B1U adO1SUtgS69/1VnaYXCiBVbudxgLxpyJFT5/Cisez5QzXY3Kf09OXl3nhSv/+lHgLXFd jdnQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:arc-authentication-results; bh=MWWEpLZJ9WTIXaIpYHjYNnIRXbU956M2DlauOTl2UxY=; b=gymhy29jS56RubrZeoe3fyxAKjJSUNfBW/lxI+Nl/YFskCnH/ncmSdsUfNnv+ZfEwL KK0zdHk4u/beKdEi+LMQT5KR2PftTx00y+kt/K7abLfCuntkgJE9SnpCX6Qpg28bjrFL hC6OHRjMfNKpu1YnHucmH6DoFrhAOETA5EEN3klxEdCrcr+aDU5Rndu06zZ2P4ARMJgV vTbsDMEtbOFO6On+7k+11ceOqKAZ2z9rBuKShq/rxTpmSXssa4ZkjbyELwGWEjO7olMN aST9MowoEaogfXO/d6XKRoSILwfLTvm8oNU7ZhWa0cMo8yHLctulqkoj3f4clhZLlbWW yxmQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id v61-v6si21072606plb.499.2018.05.24.04.21.15; Thu, 24 May 2018 04:21:30 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S968762AbeEXLUm (ORCPT + 99 others); Thu, 24 May 2018 07:20:42 -0400 Received: from lb1-smtp-cloud9.xs4all.net ([194.109.24.22]:60053 "EHLO lb1-smtp-cloud9.xs4all.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S967868AbeEXLUi (ORCPT ); Thu, 24 May 2018 07:20:38 -0400 Received: from [IPv6:2001:983:e9a7:1:a953:cf09:6a9:3f5] ([IPv6:2001:983:e9a7:1:a953:cf09:6a9:3f5]) by smtp-cloud9.xs4all.net with ESMTPA id LoINfpxGuRSWtLoIOfN0ja; Thu, 24 May 2018 13:20:37 +0200 Subject: Re: [PATCH v6 4/6] mfd: cros-ec: Introduce CEC commands and events definitions. To: Neil Armstrong , airlied@linux.ie, hans.verkuil@cisco.com, lee.jones@linaro.org, olof@lixom.net, seanpaul@google.com Cc: sadolfsson@google.com, felixe@google.com, bleung@google.com, darekm@google.com, marcheu@chromium.org, fparent@baylibre.com, dri-devel@lists.freedesktop.org, linux-media@vger.kernel.org, intel-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org, eballetbo@gmail.com References: <1527155841-28494-1-git-send-email-narmstrong@baylibre.com> <1527155841-28494-5-git-send-email-narmstrong@baylibre.com> From: Hans Verkuil Message-ID: <6d8fc035-52d6-c5fd-3c2b-64bd9288e713@xs4all.nl> Date: Thu, 24 May 2018 13:20:35 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0 MIME-Version: 1.0 In-Reply-To: <1527155841-28494-5-git-send-email-narmstrong@baylibre.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-CMAE-Envelope: MS4wfDSurql6kl3rd7EZuGQb79RphcMl6KpkB16C1CPbiO6HafX9Xnj9TrA9BWcY4XdhQgd69ctggAMJTtHBnNhlq7BJ6KwKPKsChMXsJE4E7wes9Z2r2/oW Dq/MHV392t+AYwHr+bUXd9enCO7C+qHkancHwNKsBcEEGdVatoMBh5YbNWKTlOCmw14ruEV9Enfifl/uhOYnkZICHzF/FW1anky+MysBi5rbulT0PFvEmxMH FCiibR4EQgosqyDQxRsk1UqLqtysN562d/+6N9UTaM1o3iZ8atjN2Lzu5xx7najhbUW4ouSD3lqA4x9rfYYQ9IEGbqN+py6OpF52Ra/vVJRN5Us5/PkTArUS /erAldzpKaGZbUHIUBhnmLO9qfVC9/7syqc103xDb+ocg4wk1kyGe0QOlK/NF0J+92404Mqzb1RT+bfDDj25F9RX+oo+eXAUJ8L+A18jet36j+Jm87mE4En6 sJqHKPWHJWVEkPNX2cYnIZvGqXeOxNihCCU8eYFOVKVquRUhi14G54u4MVFl3MBjc7QaBJq1EMljZkD0bsUGkgc2/5hGHcjNSiz2g9Z8BTmOyWImoXO6tbuv kzbaF6j/D3aGhG9vdf7MIBqc/nze9tQGfqJzoDm9gEkoVpCATP/DefauBDPV6CrO7HGSKYlHg9hWZgIBJTAYcg5MeXyZn8QfWrKUJIT4UiT+0H84xR12PNT0 0EyUNmVJsunwOWjQCBIYN0bVBA6buBZZ5fXYKBLei6cXJBCN2FpiN0XTkbWoz8z40d++d9dkww2qbGFk1KpJA4RaAYwXBPNy0bvw4blj4ycCswbM8lRAH4l/ 56BDVQEYhkCgz1GgxVM= Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 24/05/18 11:57, Neil Armstrong wrote: > The EC can expose a CEC bus, this patch adds the CEC related definitions > needed by the cros-ec-cec driver. > > Signed-off-by: Neil Armstrong > Tested-by: Enric Balletbo i Serra Reviewed-by: Hans Verkuil Thanks! Hans > --- > include/linux/mfd/cros_ec_commands.h | 81 ++++++++++++++++++++++++++++++++++++ > 1 file changed, 81 insertions(+) > > diff --git a/include/linux/mfd/cros_ec_commands.h b/include/linux/mfd/cros_ec_commands.h > index cc0768e..fe33a81 100644 > --- a/include/linux/mfd/cros_ec_commands.h > +++ b/include/linux/mfd/cros_ec_commands.h > @@ -804,6 +804,8 @@ enum ec_feature_code { > EC_FEATURE_MOTION_SENSE_FIFO = 24, > /* EC has RTC feature that can be controlled by host commands */ > EC_FEATURE_RTC = 27, > + /* EC supports CEC commands */ > + EC_FEATURE_CEC = 35, > }; > > #define EC_FEATURE_MASK_0(event_code) (1UL << (event_code % 32)) > @@ -2078,6 +2080,12 @@ enum ec_mkbp_event { > /* EC sent a sysrq command */ > EC_MKBP_EVENT_SYSRQ = 6, > > + /* Notify the AP that something happened on CEC */ > + EC_MKBP_EVENT_CEC_EVENT = 8, > + > + /* Send an incoming CEC message to the AP */ > + EC_MKBP_EVENT_CEC_MESSAGE = 9, > + > /* Number of MKBP events */ > EC_MKBP_EVENT_COUNT, > }; > @@ -2850,6 +2858,79 @@ struct ec_params_reboot_ec { > > /*****************************************************************************/ > /* > + * HDMI CEC commands > + * > + * These commands are for sending and receiving message via HDMI CEC > + */ > +#define EC_MAX_CEC_MSG_LEN 16 > + > +/* CEC message from the AP to be written on the CEC bus */ > +#define EC_CMD_CEC_WRITE_MSG 0x00B8 > + > +/** > + * struct ec_params_cec_write - Message to write to the CEC bus > + * @msg: message content to write to the CEC bus > + */ > +struct ec_params_cec_write { > + uint8_t msg[EC_MAX_CEC_MSG_LEN]; > +} __packed; > + > +/* Set various CEC parameters */ > +#define EC_CMD_CEC_SET 0x00BA > + > +/** > + * struct ec_params_cec_set - CEC parameters set > + * @cmd: parameter type, can be CEC_CMD_ENABLE or CEC_CMD_LOGICAL_ADDRESS > + * @val: in case cmd is CEC_CMD_ENABLE, this field can be 0 to disable CEC > + * or 1 to enable CEC functionnality, in case cmd is CEC_CMD_LOGICAL_ADDRESS, > + * this field encodes the requested logical address between 0 and 15 > + * or 0xff to unregister > + */ > +struct ec_params_cec_set { > + uint8_t cmd; /* enum cec_command */ > + uint8_t val; > +} __packed; > + > +/* Read various CEC parameters */ > +#define EC_CMD_CEC_GET 0x00BB > + > +/** > + * struct ec_params_cec_get - CEC parameters get > + * @cmd: parameter type, can be CEC_CMD_ENABLE or CEC_CMD_LOGICAL_ADDRESS > + */ > +struct ec_params_cec_get { > + uint8_t cmd; /* enum cec_command */ > +} __packed; > + > +/** > + * struct ec_response_cec_get - CEC parameters get response > + * @val: in case cmd was CEC_CMD_ENABLE, this field will 0 if CEC is > + * disabled or 1 if CEC functionnality is enabled, > + * in case cmd was CEC_CMD_LOGICAL_ADDRESS, this will encode the > + * configured logical address between 0 and 15 or 0xff if unregistered > + */ > +struct ec_response_cec_get { > + uint8_t val; > +} __packed; > + > +/* CEC parameters command */ > +enum ec_cec_command { > + /* CEC reading, writing and events enable */ > + CEC_CMD_ENABLE, > + /* CEC logical address */ > + CEC_CMD_LOGICAL_ADDRESS, > +}; > + > +/* Events from CEC to AP */ > +enum mkbp_cec_event { > + /* Outgoing message was acknowledged by a follower */ > + EC_MKBP_CEC_SEND_OK = BIT(0), > + /* Outgoing message was not acknowledged */ > + EC_MKBP_CEC_SEND_FAILED = BIT(1), > +}; > + > +/*****************************************************************************/ > +/* > * Special commands > * > * These do not follow the normal rules for commands. See each command for >